#ifndef KERNEL_TASK_H
#define KERNEL_TASK_H

#include <type.h>

#define PAGE_SIZE 0x1000     // 一页的大小 4K

typedef u32 Target();  // 定义函数类型别名Target

typedef struct Task_t {
    u32 *stack;
} Task;

typedef struct TaskFrame_t { // 进程栈帧，进程切换前要保存，进程切换后要恢复
    u32 edi;
    u32 esi;
    u32 ebx;
    u32 ebp;
    void (*eip)(void);
} TaskFrame; // 作用是在执行下一个进程2时，将上一个进程1的状态保存起来，以便在下一次执行进程1时恢复现场

void TaskInit();

#endif
